package com.sse.sensor.impl;

import java.util.Random;

import com.sse.sensor.Sensor;
import com.sse.sensor.TipoSensor;

/**
 * Clase que define un sensor de puertas.
 * @author Paul
 *
 */
public class SensorPuerta extends Sensor {
	
	/** Constante que define el evento de puerta abierta. */
	public static final long PUERTA_ABIERTA = 1;
	
	/** Constante que define el evento de puerta abierta. */
	public static final long PUERTA_CERRADA = 2;
	
	/** Objeto random para el manejo de numeros aleatorios. */
	private Random random;
	
	public SensorPuerta() {
		random = new Random();	
		this.tipoSensor = TipoSensor.PUERTA;
	}

	@Override
	public long calcularEvento() {		
		double gaussian = random.nextGaussian();
	
		// 1 desviacion estandar, 70% de probabilidades de que ocurra un evento
		// 35 % para abierto y otro 35 para cerrado.
		if(gaussian > 1){
			return PUERTA_ABIERTA;
		}
		else if(gaussian < -1)
		{
			return PUERTA_CERRADA;			
		}
		else{
			return SIN_EVENTO;
		}
	}	
}